Bingo, Computer Graphics & Game Developer

Ray Tracing Notes 2

此篇的内容为观看Ray Tracing Course多遍后并结合部分PBRT原文的笔记内容

Radiometry

Radiant Flux

ϕ [W]/[J/s]\phi ~ [W] / [J/s]

之所以不使用辐射通量的原因是因为我们无法分辨究竟:「大量的能量穿过了一个小面积区域」or 「较少的能量穿过了一个大面积区域」(这里能量的多少指代平均面积上能量的分布)

Irradiance

E [W/m2]E ~ [W / m^2]

又称入射辐射面密度

不使用辐照度的原因是,无法分辨:「大量能量的入射角较大」or「少量能量的入射角较小」情况

Radiance

L [W/m2.sr]L ~ [W / m^2 \ldotp sr]

sr表示单位角,在更高纬度的情况而言,又称为solid angle,单位为立体弧度


BRDF

fr(p,ωo,ωi)=dLo(p,ωo)dE(p,ωi)=dLo(p,ωo)Li(p,ωi)cosθidωi
f_r(p, \omega_o, \omega_i) = \frac{dL_o(p, \omega_o)}{dE(p, \omega_i)} = \frac{dL_o(p, \omega_o)}{L_i(p, \omega_i)\cos\theta_id \omega_i}

本质上BRDF就是用来描述「有多少从wiw_i方向入射的光从方向wow_o上反射出去的函数」

BRDF个人觉得可以多层次解读,首先,BRDF讲解了入射光和反射光的概率密度分布,因为他本质上只是一个入射辐射度和出射辐射度的比例(也就是返回值);另一个角度而言,在给定了入射方向wiw_i时,BRDF也负责计算出射方向wow_o的概率。


Fresnel’s law + Snell’s Law

菲涅尔公式的作用是计算入射光时,发生反射和折射的概率计算,也可以被认为是入射光能量分布情况,而斯奈尔法则则是确定入射光之后的折射光和反射光角度计算

Snell’s Law中展示出的全反射现象,只会出现在光从光疏介质到光密介质的情况下下。


Surface Normal

面法线的计算本质上就是求解给定曲面指定点上的梯度f(x,y)=0\nabla f(x, y) = 0,给定双曲面f(x,y,z)=x2a2+y2b2zf(x, y, z) = \frac{x^2}{a^2} + \frac{y^2}{b^2} - z,其中a,ba, b为给定的双曲面的曲率,因此给定点(x,y,z)(x, y, z)求解面法线,f(x,y,z)=(2xa2,2yb2,z)\nabla f(x, y ,z) = (\frac{2x}{a^2}, \frac{2y}{b^2}, -z)就是所求梯度。


F-Stop

对于焦比的科普可以参考A Simple Explanation of F-Stop

本质上从光学上理解,景深的就是因为快门的开关之间进光量的多少造成的。因此例如视频中讲解的Focalx=Diameter\frac{Focal}{x} = Diameter,实际单反的f/1.4f/1.4之类的写法本质上就是用于给出光圈大小。

但因为同样的光圈大小也可能因为焦距不同导致进光量有所不同,因此不直接给出DiameterDiameter的具体值,而是给出类似f/2.0f/2.0之类的写法。

而进光量越大,通过透镜的光子也就越多,非焦距上的物体边缘也就显得越模糊,换一种说法就是用于描述非焦距上的物体的光子也就越多。


Monte Carlo Integration

EN[f(x)]=abf(x)p(x)dx=limNbaNi=1Nf(Xi)
E_N[f(x)] = \int^b_a f(x)p(x)dx = \lim_{N \to \infty}\frac{b-a}{N}\sum^N_{i=1}f(X_i)

X代表在f(x)f(x)上的N个随机采样,记为XiX_i

因此本质上使用无意识的统计规律算法,对与原始的abf(x)dx\int_a^bf(x)dx进行变换(可见PBRT)

abf(x)dx=abf(x)p(x)p(x)dx=E[f(x)p(x)]=1Ni=1Nf(Xi)p(Xi)
\int^b_af(x)dx = \int^b_a\frac{f(x)}{p(x)}p(x)dx = E[\frac{f(x)}{p(x)}] = \frac{1}{N}\sum^N_{i=1}\frac{f(X_i)}{p(X_i)}


Importance Sampling

最佳的重要性采样(最小的方差),就是函数f(x)f(x)上的每一个采样点的采样概率,都与其函数值成比例即可(p(Xi)f(Xi)p(X_i) \propto f(X_i))

因此一个较佳的p(wi)p(\vec{w_i'})本质上就是与被积函数成比例的函数,如若选择一个均匀概率分布函数,那么就是非重要性采样和重要性采样之间的差距了

例如 p(wi)=cosθπp(\vec{w_i}') = \frac{cos\theta}{\pi},简化渲染方程的计算(BRDF采用最简单的漫反射模型fr(p,wi,wo)=ρπf_r(p, w_i, w_o) = \frac{\rho}{\pi}.

1Ni=1NLi(x,wi)ρ/πcosθcosθ/π=1Ni=1NLi(x,wi)ρ
\frac{1}{N}\sum^N_{i=1}\frac{L_i(x, \vec{w_i}')\rho/\pi cos\theta}{cos\theta/\pi} = \frac{1}{N}\sum^N_{i=1}L_i(x, \vec{w_i}')\rho


cornell_box___spheres_in_cycles_ii_by_elbrujodelatribu-d5l59e0

配图为康奈尔盒